import type { App } from "vue";
import { hasPerm } from "./permission";
import { debounce } from "./debounce";
import { copy } from "./copy";
import { throttle } from "./throttle";
import { draggable } from "./draggable";

// 全局注册 directive
export function setupDirective(app: App<Element>) {
  // 使 v-hasPerm 在所有组件中都可用（权限）
  app.directive("hasPerm", hasPerm);
  // 使 v-debounce 在所有组件中都可用（防抖）
  app.directive("debounce", debounce);
  // 使 v-copy 在所有组件中都可用（复制）
  app.directive("copy", copy);
  // 使 v-throttle 在所有组件中都可用（节流）
  app.directive("throttle", throttle);
  // 使 v-draggable 在所有组件中都可用（拖拽）
  app.directive("draggable", draggable);
}
